home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / stevi69s.zip / STEVIE.H < prev    next >
Text File  |  1990-04-24  |  5KB  |  249 lines

  1. /*
  2.  * $Header: /nw/tony/src/stevie/src/RCS/stevie.h,v 1.19 89/07/12 21:33:32 tony Exp $
  3.  *
  4.  * Main header file included by all source files.
  5.  */
  6.  
  7. #include "env.h"    /* defines to establish the compile-time environment */
  8.  
  9. #include <stdio.h>
  10. #include <ctype.h>
  11.  
  12. #ifdef    BSD
  13.  
  14. #include <strings.h>
  15. #define strchr index
  16.  
  17. #else
  18.  
  19. #ifdef    MINIX
  20.  
  21. extern    char    *strchr();
  22. extern    char    *strrchr();
  23. extern    char    *strcpy();
  24. extern    char    *strcat();
  25. extern    int    strlen();
  26.  
  27. #else
  28. #include <string.h>
  29. #endif
  30.  
  31. #endif
  32.  
  33. #include "ascii.h"
  34. #include "keymap.h"
  35. #include "param.h"
  36. #include "term.h"
  37.  
  38. extern    char    *strchr();
  39.  
  40. #define NORMAL 0
  41. #define CMDLINE 1
  42. #define INSERT 2
  43. #define REPLACE 3
  44. #define FORWARD 4
  45. #define BACKWARD 5
  46.  
  47. /*
  48.  * Boolean type definition and constants
  49.  */
  50. typedef    short    bool_t;
  51.  
  52. #ifndef    TRUE
  53. #define    FALSE    (0)
  54. #define    TRUE    (1)
  55. #endif
  56.  
  57. /*
  58.  * SLOP is the amount of extra space we get for text on a line during
  59.  * editing operations that need more space. This keeps us from calling
  60.  * malloc every time we get a character during insert mode. No extra
  61.  * space is allocated when the file is initially read.
  62.  */
  63. #define    SLOP    10
  64.  
  65. /*
  66.  * LINEINC is the gap we leave between the artificial line numbers. This
  67.  * helps to avoid renumbering all the lines every time a new line is
  68.  * inserted.
  69.  */
  70. #define    LINEINC    10
  71.  
  72. #define CHANGED        Changed=TRUE
  73. #define UNCHANGED    Changed=FALSE
  74.  
  75. struct    line {
  76.     struct    line    *prev, *next;    /* previous and next lines */
  77.     char    *s;                        /* text for this line */
  78.     int    size;                        /* actual size of space at 's' */
  79.     unsigned long    num;            /* line "number" */
  80. };
  81.  
  82. #define    LINEOF(x)    ((x)->linep->num)
  83.  
  84. struct    lptr {
  85.     struct    line    *linep;        /* line we're referencing */
  86.     int    index;                    /* position within that line */
  87. };
  88.  
  89. typedef    struct line    LINE;
  90. typedef    struct lptr    LPTR;
  91.  
  92. struct charinfo {
  93.     char ch_size;
  94.     char *ch_str;
  95. };
  96.  
  97. extern struct charinfo chars[];
  98.  
  99. extern    int    State;
  100. extern    int    Rows;
  101. extern    int    Columns;
  102. extern    char    *Realscreen;
  103. extern    char    *Nextscreen;
  104. extern    char    *Filename;
  105. extern    LPTR    *Filemem;
  106. extern    LPTR    *Filetop;
  107. extern    LPTR    *Fileend;
  108. extern    LPTR    *Topchar;
  109. extern    LPTR    *Botchar;
  110. extern    LPTR    *Curschar;
  111. extern    LPTR    *Insstart;
  112. extern    int    Cursrow, Curscol, Cursvcol, Curswant;
  113. extern    bool_t    set_want_col;
  114. extern    int    Prenum;
  115. extern    bool_t    Changed;
  116. extern    char    Redobuff[], Insbuff[];
  117. extern    char    *Insptr;
  118. extern    int    Ninsert;
  119. extern    bool_t    got_int;
  120.  
  121. extern    char    *malloc(), *strcpy();
  122.  
  123. /*
  124.  * alloc.c
  125.  */
  126. char    *alloc(), *strsave(), *mkstr();
  127. int        screenalloc();
  128. void    filealloc(), freeall();
  129. LINE    *newline();
  130. bool_t    bufempty(), buf1line(), lineempty(), endofline(), canincrease();
  131.  
  132. /*
  133.  * cmdline.c
  134.  */
  135. void    docmdln(), msg(), emsg(), smsg(), gotocmd(), wait_return(), badcmd();
  136. bool_t    doecmd();
  137. char    *getcmdln();
  138.  
  139. /*
  140.  * edit.c
  141.  */
  142. void    edit(), insertchar(), getout(), scrollup(), scrolldown(), beginline();
  143. bool_t    oneright(), oneleft(), oneup(), onedown();
  144.  
  145. /*
  146.  * fileio.c
  147.  */
  148. void    filemess(), renum();
  149. bool_t    readfile(), writeit();
  150.  
  151. /*
  152.  * help.c
  153.  */
  154. bool_t    help();
  155.  
  156. /*
  157.  * linefunc.c
  158.  */
  159. LPTR    *nextline(), *prevline(), *coladvance(), *nextchar(), *prevchar();
  160.  
  161. /*
  162.  * main.c
  163.  */
  164. void    stuffin(), stuffnum();
  165. void    do_mlines();
  166. int        vgetc();
  167. bool_t    anyinput();
  168.  
  169. /*
  170.  * mark.c
  171.  */
  172. void    setpcmark(), clrall(), clrmark();
  173. bool_t    setmark();
  174. LPTR    *getmark();
  175.  
  176. /*
  177.  * misccmds.c
  178.  */
  179. void    opencmd(), fileinfo(), inschar(), delline();
  180. bool_t    delchar();
  181. int        cntllines(), plines();
  182. LPTR    *gotoline();
  183.  
  184. /*
  185.  * normal.c
  186.  */
  187. void    normal();
  188.  
  189. /*
  190.  * param.c
  191.  */
  192. void    doset();
  193.  
  194. /*
  195.  * ptrfunc.c
  196.  */
  197. int        inc(), dec();
  198. int        gchar();
  199. void    pchar(), pswap();
  200. bool_t    lt(), equal(), ltoreq();
  201. #if 0
  202. /* not currently used */
  203. bool_t    gtoreq(), gt();
  204. #endif
  205.  
  206. /*
  207.  * screen.c
  208.  */
  209. void    updatescreen(), updateline();
  210. void    screenclear(), cursupdate();
  211. void    s_ins(), s_del();
  212. void    prt_line();
  213.  
  214. /*
  215.  * search.c
  216.  */
  217. void    dosub(), doglob();
  218. bool_t    searchc(), crepsearch(), findfunc(), dosearch(), repsearch();
  219. LPTR    *showmatch();
  220. LPTR    *fwd_word(), *bck_word(), *end_word();
  221.  
  222. /*
  223.  * tagcmd.c
  224.  */
  225. void    dotag(), dountag();
  226.  
  227. /*
  228.  * undo.c
  229.  */
  230. void    u_save(), u_saveline(), u_clear();
  231. void    u_lcheck(), u_lundo();
  232. void    u_undo();
  233.  
  234. /*
  235.  * Machine-dependent routines.
  236.  */
  237. int        inchar();
  238. void    flushbuf();
  239. void    outchar(), outstr(), beep();
  240. char    *fixname();
  241. #ifndef    OS2
  242. #ifndef    DOS
  243. void    remove(), rename();
  244. #endif
  245. #endif
  246. void    windinit(), windexit(), windgoto();
  247. void    pause();
  248. void    doshell();
  249.